package br.ucb.rest.controle.action.impl;

import java.util.Date;
import java.util.List;

import org.joda.time.DateTime;
import org.joda.time.Minutes;

import br.ucb.rest.controle.action.AbstractAction;

import br.ucb.rest.controle.action.AbstractAction;
import br.ucb.rest.negocio.impl.FilaChamadoBOS;
import br.ucb.rest.negocio.impl.GrupoPedidoBOS;
import br.ucb.rest.persistencia.vo.FilaChamadoVO;
import br.ucb.rest.persistencia.vo.GrupoPedidoVO;
import br.ucb.rest.persistencia.vo.PedidoVO;

public class PainelGarconAction extends AbstractAction {

	private static final String VERMELHO = "fc0202";
	private static final String AMARELO = "f9fc02";
	private static final String VERDE = "14fc02";
	
	private static final long serialVersionUID = -816251423495901958L;

	public PainelGarconAction() {
		super();
	}
	
	
	private List<GrupoPedidoVO> colGrupoPedidoVO;
	private List<FilaChamadoVO> colFilaChamadoVO;
	
	
	public String fechaChamado(){
	
		FilaChamadoBOS bos = FilaChamadoBOS.getInstance();
		bos.fecharChamado(Integer.valueOf(request.getParameter("chave")));
		
		return geraPainel();
	}
	
	public String fechaPedido(){
		
		GrupoPedidoBOS bos = GrupoPedidoBOS.getInstance();
		bos.fecharPedido(Integer.valueOf(request.getParameter("chave")));
		
		return geraPainel();
	}

	public String geraPainel() {
		
		GrupoPedidoBOS bos1 = GrupoPedidoBOS.getInstance();
		colGrupoPedidoVO = bos1.recuperaProntos();
		
		FilaChamadoBOS bos2 = FilaChamadoBOS.getInstance();
		colFilaChamadoVO = bos2.recuperaAbertos();
		
//		for (GrupoPedidoVO grupo : colGrupoPedidoVO) {
//			
//			Date h = grupo.getDataHoraPedido();
//			
//			List<PedidoVO> pedidos = grupo.getColPedidoVO();
//			
//			Integer maior = pedidos.get(0).getCardapioVO().getQtTempoPreparo();
//			for (PedidoVO pedidoVO : pedidos) {
//				if(pedidoVO.getCardapioVO().getQtTempoPreparo() > maior)maior = pedidoVO.getCardapioVO().getQtTempoPreparo();
//			}
//			
//			DateTime tempo = new DateTime(h);
//			tempo = tempo.plusMinutes(maior);
//			
//			DateTime agora = new DateTime(System.currentTimeMillis());
//			
//			int falta = Minutes.minutesBetween(tempo, agora).getMinutes();
//			
//			int avg = maior/3;
//			
//			if(falta >= avg*2)
//			{
//				grupo.setCor(VERDE);
//				
//			}
//			else if(falta >= avg)
//			{
//				grupo.setCor(AMARELO);
//			
//			}
//			else if(falta < avg)
//			{
//				grupo.setCor(VERMELHO);
//			}
//		}
		
		return SUCCESS;
		
	}
	
	public List<FilaChamadoVO> getColFilaChamadoVO() {
		return colFilaChamadoVO;
	}

	public void setColFilaChamadoVO(List<FilaChamadoVO> colFilaChamadoVO) {
		this.colFilaChamadoVO = colFilaChamadoVO;
	}

	public List<GrupoPedidoVO> getColGrupoPedidoVO() {
		return colGrupoPedidoVO;
	}

	public void setColGrupoPedidoVO(List<GrupoPedidoVO> colGrupoPedidoVO) {
		this.colGrupoPedidoVO = colGrupoPedidoVO;
	}

}
